package modelo.propiedad;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

import modelo.general.Persona;

/**
 * 
 * @author edgar
 * Clase para el almacenamiento de la informacion del propietario referente a los pozos
 * 
 */
@Entity
@Table(name="propietario")
public class Propietario {
	private int id;
	private String telContacto;
	private String personaContacto;
	private String nombreProvisional;
	private boolean organismoOficial;
	private boolean personaJuridica;
	private boolean personaNatural;
	
	private Persona persona;
	private Organismo organismo;
	private PersonaJuridica persJuridica;
	
	private List<RegistroPropietario> listaRegistroPropietario;

	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getTelContacto() {
		return telContacto;
	}

	public void setTelContacto(String telContacto) {
		this.telContacto = telContacto;
	}

	public String getPersonaContacto() {
		return personaContacto;
	}

	public void setPersonaContacto(String personaContacto) {
		this.personaContacto = personaContacto;
	}
	

	public String getNombreProvisional() {
		return nombreProvisional;
	}

	public void setNombreProvisional(String nombreProvisional) {
		this.nombreProvisional = nombreProvisional;
	}

	public boolean isOrganismoOficial() {
		return organismoOficial;
	}

	public void setOrganismoOficial(boolean organismoOficial) {
		this.organismoOficial = organismoOficial;
	}

	public boolean isPersonaJuridica() {
		return personaJuridica;
	}

	public void setPersonaJuridica(boolean personaJuridica) {
		this.personaJuridica = personaJuridica;
	}

	public boolean isPersonaNatural() {
		return personaNatural;
	}

	public void setPersonaNatural(boolean personaNatural) {
		this.personaNatural = personaNatural;
	}

	@ManyToOne
	public Persona getPersona() {
		return persona;
	}

	public void setPersona(Persona persona) {
		this.persona = persona;
	}

	@ManyToOne
	public Organismo getOrganismo() {
		return organismo;
	}

	public void setOrganismo(Organismo organismo) {
		this.organismo = organismo;
	}

	@ManyToOne
	public PersonaJuridica getPersJuridica() {
		return persJuridica;
	}

	public void setPersJuridica(PersonaJuridica persJuridica) {
		this.persJuridica = persJuridica;
	}

	@OneToMany(mappedBy = "propietario")
	@Cascade({CascadeType.ALL})
	public List<RegistroPropietario> getListaRegistroPropietario() {
		return listaRegistroPropietario;
	}

	public void setListaRegistroPropietario(
			List<RegistroPropietario> listaRegistroPropietario) {
		this.listaRegistroPropietario = listaRegistroPropietario;
	}
	
	
	
	
	
}
